With the proliferation of digital cameras, numerous online photosharing services have emerged and are becoming widely accepted by photo enthusiasts. The photosharing services are generally based on one of two architectures. The first is a centrally hosted serving architecture where a central server hosts digital images for a number of users and provides photosharing services to guests. The second is a peer-to-peer (P2P) architecture where a user creates and stores photo albums on the user's computer. The user's computer then provides photosharing services to guests in a P2P fashion.
For various reasons, some P2P systems now employ a hybrid P2P architecture where a proxy server operates as a single point of entry for all of the peer nodes in the P2P system. Thus, when a guest node requests a digital image from a peer node, the request is first provided to the proxy server, which in turn provides the request to the peer node. In a similar fashion, the response from the peer node is typically routed through the proxy server.
One issue with both the P2P architecture and the hybrid P2P architecture is that a user's shared images are only available when the user's peer device is online. In an attempt to alleviate this problem, some hybrid P2P architectures incorporate a caching proxy server that operates to cache recently requested images. As a result, subsequent requests for an image stored in the cache may be served directly from the caching proxy server. As such, the cached images are available even if the corresponding peer node hosting the images is offline. However, caching proxy servers only cache previously requested images and, due to their limited storage space, only cache a small subset of all images shared by the peer nodes in the system. Thus, the issue of availability of shared images when the hosting peer is offline still remains.
Therefore, there is a need for an improved P2P content sharing architecture that substantially eliminates the issue of availability of shared content when the hosting peer is offline.